home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / C++ / Applications / PICSee Dust 1.01 / Preferences source / PICS_OpenFilePane.cpp < prev    next >
C/C++ Source or Header  |  1995-11-16  |  4KB  |  110 lines

  1. #include "PICS_PreferencesPanes.h"
  2. #include "PICSViewer.h"
  3.  
  4. enum {
  5.     // Opening file (show progress) pane
  6.     kOpenFilePane_AlwaysShowProgressRadio = kPrefsDlog_LastItem,
  7.     kOpenFilePane_NeverShowProgressRadio,
  8.     kOpenFilePane_ConditionalShowProgressRadio,
  9.     
  10.     kOpenFilePane_FileSizeInput,
  11.     
  12.     kOpenFilePane_LineSeparator,
  13.     kOpenFilePane_Box
  14. };
  15.  
  16. // ---------------------------------------------------------------------------
  17.  
  18. void PrefsDialogSetupOpenFilePane(DialogPtr prefsDlog) {
  19.     short fileSize = 150;
  20.     
  21.     if ((**sPrefsData->prefs).showOpenProgress == kAlwaysShowOpenProgress) {
  22.         // Always show progress
  23.         SelectRadioBtn(prefsDlog, kOpenFilePane_AlwaysShowProgressRadio,
  24.             kOpenFilePane_AlwaysShowProgressRadio,
  25.             kOpenFilePane_ConditionalShowProgressRadio);
  26.     }
  27.     else if ((**sPrefsData->prefs).showOpenProgress == kNeverShowOpenProgress) {
  28.         // Never show progress
  29.         SelectRadioBtn(prefsDlog, kOpenFilePane_NeverShowProgressRadio,
  30.             kOpenFilePane_AlwaysShowProgressRadio,
  31.             kOpenFilePane_ConditionalShowProgressRadio);
  32.     }
  33.     else {
  34.         // Show progress if file is over "n" KBytes in size
  35.         SelectRadioBtn(prefsDlog, kOpenFilePane_ConditionalShowProgressRadio,
  36.             kOpenFilePane_AlwaysShowProgressRadio,
  37.             kOpenFilePane_ConditionalShowProgressRadio);
  38.         
  39.         fileSize = (**sPrefsData->prefs).showOpenProgress;
  40.     }
  41.  
  42.     Str15 fileSizeStr;
  43.     NumToString(fileSize, fileSizeStr);
  44.     SetDItemText(prefsDlog, kOpenFilePane_FileSizeInput, fileSizeStr);
  45. } // END PrefsDialogSetupOpenFilePane
  46.  
  47. // ---------------------------------------------------------------------------
  48.  
  49. Boolean PrefsDialogGetOpenFilePaneSettings(DialogPtr prefsDlog) {
  50.     if (GetDlogCtlValue(prefsDlog, kOpenFilePane_AlwaysShowProgressRadio)) {
  51.         (**sPrefsData->prefs).showOpenProgress = kAlwaysShowOpenProgress;
  52.     }
  53.     else if (GetDlogCtlValue(prefsDlog, kOpenFilePane_NeverShowProgressRadio)){
  54.         (**sPrefsData->prefs).showOpenProgress = kNeverShowOpenProgress;
  55.     }
  56.     else {
  57.         long fileSize;
  58.         if (CheckValidNumeral(prefsDlog, kOpenFilePane_FileSizeInput, &fileSize)) {
  59.             if (fileSize < 1) {
  60.                 SysBeep(10);
  61.                 SelectDialogItemText(prefsDlog, kOpenFilePane_FileSizeInput, 0, 32767);
  62.                 return(false);
  63.             }
  64.             else {
  65.                 (**sPrefsData->prefs).showOpenProgress = fileSize;
  66.             }
  67.         }
  68.         else
  69.             return(false);
  70.     }
  71.     
  72.     return(true);
  73. } // END PrefsDialogGetOpenFilePaneSettings
  74.  
  75. // ---------------------------------------------------------------------------
  76.  
  77. void PrefsDialogOpenFilePaneHit(DialogPtr prefsDlog, short itemHit) {
  78.     switch(itemHit) {
  79.         case kOpenFilePane_AlwaysShowProgressRadio:
  80.         case kOpenFilePane_NeverShowProgressRadio:
  81.         case kOpenFilePane_ConditionalShowProgressRadio:
  82.             SelectRadioBtn(prefsDlog, itemHit,
  83.                 kOpenFilePane_AlwaysShowProgressRadio,
  84.                 kOpenFilePane_ConditionalShowProgressRadio);
  85.         break;
  86.     }
  87. } // END PrefsDialogOpenFilePaneHit
  88.  
  89. // ---------------------------------------------------------------------------
  90.  
  91. void PrefsDialogOpenFilePaneUpdate(DialogPtr prefsDlog, EventRecord *theEvt, Boolean frontMost) {
  92.     Rect lineRect;
  93.  
  94.     GetDItemRect(prefsDlog, kOpenFilePane_Box, &lineRect);
  95.     GrayDrawShadowBox(&lineRect, NULL);
  96.  
  97.     GetDItemRect(prefsDlog, kOpenFilePane_LineSeparator, &lineRect);
  98.     GrayDrawShadowLine(&lineRect, NULL);
  99. } // END PrefsDialogOpenFilePaneUpdate
  100.  
  101. // ---------------------------------------------------------------------------
  102.  
  103. void PrefsDialogOpenFilePaneActivate(DialogPtr prefsDlog, Boolean activate) {
  104.     short hiliteMode = activate ? 0 : 255;
  105.     
  106.     for (short i = kOpenFilePane_AlwaysShowProgressRadio;
  107.         i <= kOpenFilePane_ConditionalShowProgressRadio; i++) {
  108.         HiliteControl((ControlHandle)GetDItemHdl(prefsDlog, i), hiliteMode);
  109.     }
  110. } // END PrefsDialogOpenFilePaneActivate